求助C语言的问题"用数组实现顺序队列"

来源:百度知道 编辑:UC知道 时间:2024/05/09 19:51:19
用数组实现顺序队列。功能要求:实现一个存放整数的队列,提示用户输入初始化的6个整数放进队列里,然后提示用户向队列插入一个新的整数,显示插入后队列的数据,执行出队列操作(将队头元素删去),显示出队列后队列中的数据。
例如:用户输入初始化的6个整数1 2 3 4 5 6后,队列显示:1 2 3 4 5 6
用户向队列插入一个新的整数7后,队列显示:1 2 3 4 5 6 7
执行出队列操作,显示出队的值为1
显示出队列后队列中的数据为:2 3 4 5 6 7

程序分析:
(1)声明1个较大的整数数组存放队列数据,声明2个整型变量作为队头和队尾的指示
(2)入队时队尾指示加1
(3)出队时队头指示加1

#include "stdafx.h"
#include<stdio.h>
#define N 200 //预设队列大小
int queue[N];
int flag=0; //队列标识 0为不存在,1为存在
int front=0,rear=0; //队列头,队列尾
void creat() //创建队列
{
if(flag==1)
{printf("队列已经存在。");}
else
{
for(int i=0;i<6;i++)
{
printf("输入初始化的第%d数:",i);
scanf("%d",&(queue[i]));
}
rear=5; flag=1;
}
}
void enqueue() //进队列
{
if(flag==0)
{printf("当前还没有队列,请先创建队列:");}
else
{
printf("输入进入队列的元素:");
scanf("%d",&queue[rear+1]);
rear++;
}
}
void gethead() //出队列
{
if(flag==0)
{printf("当前还没有队列,请先创建队列:");}
else
{
printf("出队列的元素:%d",queue[front]);
front++;
printf("\n出列后的队列为:");
for(int i=front;i<=rear;i++)
{printf("